1. Field of the Invention
Embodiments of the disclosure relate to the field of system problem diagnosis, and in particular, systems and methods for automatically diagnosing a system problem.
2. Background of the Invention
A system may encounter a problem which needs to be diagnosed. System problems may include a software or application error, flaw, mistake, failure, or fault that prevents the software from operating as intended by producing an incorrect or unexpected result. System problems may further include a firmware error such as a memory leak or a firmware bug. System problems may further include an operating system configuration error such as an adapter port configuration problem or a Logical Unit Number (LUN) configuration problem. System problems further includes a hardware error such as a power supply failure, a fan failure, a controller failure, or a storage failure. System problems may further include a maintenance problem such as an adapter card failure during hardware replacement, power failure during adding hardware, or an internal power communication error during Remote Power Control (RPC) replacement. System problems may further include a network problem such as a Transmission Control Protocol and Internet Protocol (TCP/IP) configuration error, a TCP/IP connectivity error, a gateway error, or Domain Name System (DNS) error.
System problem diagnosis generally involves analyzing information to determine the cause of a status change from a satisfactory system state to an unsatisfactory system state. For example, a computer may be running as expected, but may subsequently have a problem which causes the system to not operate as anticipated. Problem diagnosis involves an ability to detect a problem to yield information useful for diagnosing the problem. Problem diagnosis is based on an ability to analyze information generated by a system or an application to determine a root-cause of the problem to determine an appropriate solution.
System problems may be diagnosed manually. Troubleshooting of systems may be done manually by technicians or engineers. For example, a user may troubleshoot the system to find a problem. The user may view system information, test hardware components, and manually run tests to determine and diagnose a system or an application problem. Systems typically record information related to events in logs, traces, and system states which are useful for problem diagnosis. A technician may manually examine event information recorded by various system components, applications, and system states when there is a system problem. Previously diagnosed problems may also require manual troubleshooting to determine and diagnose a system or an application problem.